Castor上で定義したDescriptionをdbtに書き戻すことができる「Sync Back to dbt」機能を試してみた
さがらです。
Castor上で定義したDescriptionをdbtに書き戻すことができる「Sync Back to dbt」機能を試してみたので、本記事でまとめてみます。
Sync Back to dbt機能とは
まず、Sync Back to dbt機能について説明します。
概要としては、Castorが2023年2月にリリースした機能で、Castor上で定義したDescriptionをdbtに書き戻すことが出来る、という機能です。
昨今のデータカタログはdbt上で定義したDescriptionをそのままデータカタログ上のDescriptionとして使用できる事が多いと思います。
しかし、実際にビジネスメタデータとなるDescriptionについて一番詳しいのはデータエンジニアやアナリティクスエンジニアではなく、各業務を遂行するビジネス部門の方である、ということが多いのではないでしょうか。 こんな時、ビジネス部門の方にdbtを使用してDescriptionを埋めてもらうことはスキルセット的にも難しいと思います。
そこで、Castorが今回リリースしたSync Back to dbt機能の出番です! この機能があれば、ビジネス部門の方にCastor上でDescriptionを記述してもらい、その内容を自動追記した上でGitHub上でブランチを切ることができます。これにより、入力はビジネス部門の方に行ってもらいつつ、Gitを用いたバージョン管理も可能になり、dbt上でビジネスメタデータを各エンジニアが入力する手間も省くことができます。
事前準備
ということで、早速Sync Back to dbt機能を試していきたいのですが、いくつか必要なことがありますので行っていきます。
GitHubリポジトリへのユーザー追加
Castorから直接GitHub上にプッシュできるように、Castorが管理するGitHubユーザーを、dbtのコードを管理しているリポジトリに対して追加する必要があります。
実際に追加するのは、「techcastor」というユーザーです。
対象のGitHubのリポジトリ上で、Settings
➟Collaborators
のManage Access
欄からAdd people
を押します。
「techcastor」を入力し、Add ~ to this repository
を押します。
すると、Pending Invite
というステータスになります。私はここでCastorの担当の方に連絡をしました。
担当の方がInvitationを受け入れてくれたら、準備は完了です!
dbtで定義されたテーブルに対してCastor上でDescriptionを追加
Castor上で、dbtで定義されているcustomer
テーブルの各カラムについて、下図のようにDescriptionを追加します。
一方で対象のテーブルについてdbt上では、models/schema.yml
を作成済の状態です。既にdbt上でcustomer
テーブル、customer_id
カラム、first_order_date
カラム、についてはDescriptionを定義済です。
version: 2 models: - name: customers description: 各Customerの注文情報を1レコードにサマリしたテーブル。(One record per customer) columns: - name: customer_id description: Primary key tests: - unique - not_null - name: first_order_date description: 顧客がまだ注文していない場合はNULL。(NULL when a customer has not yet placed an order)
試してみた
ということで早速、Sync Back処理を行ってみます!
やることは非常に簡単で、Settings
➟Integrations
タブから、Sync back to dbt
を押すだけです!
これを押すと、右上にポップアップメッセージが表示されます。「Sync Back処理が終わったら通知するよ、通常24時間以内に通知するよ」といった内容ですね。
この後、Castor社の方に対応いただき、7時間ほど経過して新しいブランチcastor-sync-back
が対象のリポジトリ上に作られました!
ブランチを見てみると、models/schema.yml
にdescription
が# pushed from Castor
というコメント付きで追加されていました。
また、yamlファイルを事前に作成していない場合は、対象のテーブルを作成するmodel名.yml
の形でyamlファイルが作られていました。
この内容で問題なければ、GitHub上でPull Requestを作成してMergeしてみます。
このあと、dbt Cloud上でGitHubからPullした上でMainブランチを確認してみると、無事にCastor上で定義したDescriptionが反映されていました!
最後に
Castor上で定義したDescriptionをdbtに書き戻すことができる「Sync Back to dbt」機能を試してみました。
2023年3月時点、他のデータカタログには類似機能がないはずです。ぜひ気になる方はCastorをトライアルしてみてください!